package JavaStudy.JVM;

//栈溢出，-Xss128k
//每当java程序代码启动一个新线程时，Java虚拟机都会为它分配一个Java栈。Java栈以帧为单位保存线程的运行状态。
// 当线程调用java方法时，虚拟机压入一个新的栈帧到该线程的java栈中。只要这个方法还没有返回，它就一直存在。
// 如果线程的方法嵌套调用层次太多(如递归调用)，随着java栈中帧的逐渐增多，最终会由于该线程java栈中所有栈帧大小总和大于-Xss设置的值
//解决方法  -Xss: 来设置每个线程的Stack大小即可。
public class StackOverflowErrorTest {
    private int count = 0;

    public static void main(String[] args) {
        new StackOverflowErrorTest().method();
    }

    public void method() {
        System.out.println(++count);
        method();
    }
}
